import java.sql.Date;
import java.sql.Time;

/**
 * This class creates the treatment records. Records who was the treating doc,
 * attending nurse, date, time, DOs, symptoms, diagnosis, heart rate, pulse,
 * temperature, weight, and height.
 * 
 * @author evelyn942
 * @version 1.0 3-10-11
 */

public class TreatmentRecord {

        private Date date;
        
        private Time time;
        
        private DoctorsOrders doctorsOrders;
        
        private String treatingDoctor, attendingNurse, symptoms, diagnosis;
        
        private int bpSystolic, bpDiastolic, pulse;
        
        private double temp, weight;
        
        private Height height;
		/**
		 * This method instantiates a doctorsOrders. Part of the treatment record is the list of doctors orders which includes 
		 * follow up instructions and other instructions. 
		 */
        public TreatmentRecord(){
        	doctorsOrders = new DoctorsOrders();
        }
		/**
		 * This method takes in one parameter and returns the doctors orders for this class.
		 * @param doctorsOrders Takes in a variable of type DoctorsOrders for this class to access.
		 * @return Returns the doctorsOrders taken in for access by this class.
		 */
        public DoctorsOrders getDoctorsOrders(DoctorsOrders doctorsOrders) {
                return doctorsOrders;
        }
        /**
         * This toString method returns a string of all the information in this class to be accessed by users/database. 
         * @return Returns a long string of all the information currently in the class to be accessed by database/users. 
         */
        public String toString(){
        	return "TREATMENT RECORD/n Date" + this.getDate() + "/n Time" + 
        	this.getTime() + "/n Treating Doctor" + this.getTreatingDoctor() + 
        	"/n Attending Nurse" + this.getAttendingNurse() + "/n Symptoms" + 
        	this.getSymptoms() + "/n Diagnosis" + this.getDiagnosis() + 
        	"/n BP Systolic" + this.getBpSystolic() + "/n BP Diastolic" + 
        	this.getBpDiastolic() + "/n Pulse" + this.getPulse() + "/n Temperature" +
        	this.getTemperature() + "/n Weight" + this.getWeight() + "/n Height" + 
        	this.getHeight();
        }
        /**
         * This getter gets the TreatingDoctor and returns it in a string form for access by database/user/other classes.
         * @return TreatingDoctor returns the treating doctor for the patient
         */
        public String getTreatingDoctor(){
                return treatingDoctor;
        }
        /**
         * This method sets the Treating Doctor for the class in the form of the string. 
         * @param doc Sets the TreatingDoctor by taking in a string
         */
        public void setTreatingDoctor(String doc){
                this.treatingDoctor = doc; 
        }
        /**
         * This getter gets the attendingNurse and returns it in a string form for access by database/user/other classes.
         * @return attendingNurse Retursn the attending nurse of the patient
         */
        public String getAttendingNurse(){
                return attendingNurse;
        }
        /**
         * This method sets the Attending Nurse for the class in the form of the string. 
         * @param nurse Sets the attendingNurse by taking in a string
         */
        public void setAttendingNurse(String nurse){
                this.attendingNurse = nurse;
        }
        /**
         * This getter gets the date of the appointment and returns it in a date form for access by database/user/other classes.
         * @return date of appointment in the form of a Date
         */
        public Date getDate(){
                return date;
        }
        /**
         * This method sets the date for the class by taking in the date of type Date. 
         * @param date Sets the date by taking in a variable of type Date
         */
        public void setDate(Date date){
                this.date=date; 
        }
        /**
         * This getter gets the time of the appointment and returns it in a Time form for access by database/user/other classes.
         * @return time Returns time of appointment in Time form for use by other classes
         */
        public Time getTime(){
                return time;
        }
        /**
         * This method sets the time for the class in a variable of type Time 
         * @param t Sets the time by taking in a variable of type Time
         */
        public void setTime(Time t){
                this.time = t;
        }
        /**
         * This getter gets the symptoms of patient and returns it in a string form for access by database/user/other classes.
         * @return symptoms of patient. returns in a string form for access by other classes
         */
        public String getSymptoms(){
                return symptoms;
        }
        /**
         * This method sets the symptoms for the class in a string
         * @param symptoms Sets the symptoms by taking in a string
         */
        public void setSymptoms(String sypmtoms){
                this.symptoms = sypmtoms;
        }
        /**
         * This getter gets the diagnosis and returns it in a string form for access by database/user/other classes.
         * @return diagnosis of patient in string form for access by all other classes
         */
        public String getDiagnosis(){
                return diagnosis;
        }
        /**
         * This method sets the diagnosis for the class by taking in a string 
         * @param diagnosis Sets the diagnosis by taking in a string
         */
        public void setDiagnosis(String diagnosis){
                this.diagnosis=diagnosis;
        }
        /**
         * This getter gets the Diastolic Blood Pressure and returns it in an int form for access by database/user/other classes.
         * @return bpDiastolic in the form of an int for access by all other classes
         */
        public int getBpDiastolic(){
                return bpDiastolic;
        }
        /**
         * This method sets the diastolic blood pressure for the class by taking in an int 
         * @param bpd Sets the bpDaistolic by taking in an int
         */
        public void setBpDiastolic(int bpd){
                this.bpDiastolic = bpd;
        }
        /**
         * This getter gets the Systolic Blood Pressure and returns it in an int form for access by database/user/other classes.
         * @return bpSystolic in form of an int for access by all other classes
         */
        public int getBpSystolic(){
                return bpSystolic;
        }
        /**
         * This method sets the systolic blood pressure for the class by taking in an int 
         * @param bps Sets the bpSystolic by taking in an int
         */
        public void setBpSystolic(int bps){
                this.bpSystolic = bps;
        }
        /**
         * This getter gets the pulse and returns it in an int form for access by database/user/other classes.
         * @return pulse in int form for access by all other classes
         */
        public int getPulse(){
                return pulse;
        }
        /**
         * This method sets the pulse for the class by taking in an int 
         * @param pulse Sets the pulse by taking in an int
         */
        public void setPulse(int pulse){
                this.pulse = pulse;
        }
        /**
         * This getter gets the temperature and returns it in an int form for access by database/user/other classes.
         * @return temp in int form for access by all other classes
         */
        public double getTemperature(){
                return temp;
        }
        /**
         * This method sets the temperature for the class by taking in an int 
         * @param temp Sets the temp by taking in a string
         */
        public void setTemperature(double temp){
                this.temp = temp;
        }
        /**
         * This getter gets the weight and returns it in a double type for access by database/user/other classes.
         * @return weight Returns in a double form for access by all other classes
         */
        public double getWeight(){
                return weight;
        }
        /**
         * This method sets the weight for the class by taking in a double 
         * @param diagnosis Sets the diagnosis by taking in a string
         */
        public void setWeight(double weight){
                this.weight = weight;
        }
        /**
         * This getter gets the height from this class and returns it in a Height type for access by database/user/other classes.
         * @return height Returns the height in Height form for access by all other classes
         */
        public Height getHeight(){
        	return this.height;
        }
        /**
         * This method sets the height for the class by taking in a variable of type Height 
         * @param height Sets the height by taking in a variable of type Height
         */
        public void setHeight(Height height){
        	this.height = height;
        }
        /**
         * This getter gets the prescription by accessing the DoctorsOrders's getPrescription method. Returns for use by all other classes.
         * @return Returns the prescription accessed by DoctorsOrders getPrescription and returns as a string for use by all other classes
         */
        public String getPrescription(){
        	return doctorsOrders.getPrescription();
        }
        /**
         * This method sets the prescription for the class by taking in a string 
         * @param prescription Sets the prescription by taking in a string
         */
        public void setPrescription(String prescription){
        	doctorsOrders.setPrescription(prescription);
        }
        /**
         * This getter gets the lab work by accessing the DoctorsOrders's getLabWork method. Returns for use by all other classes.
         * @return Returns the labWork accessed by DoctorsOrders getLabWork and returns as a string for use by all other classes
         */
        public String getLabWork(){
        	return doctorsOrders.getLabWork();
        }
        /**
         * This method sets the lab work for the class by taking in a string 
         * @param labWork Sets the labWork by taking in a string
         */
        public void setLabWork(String labWork){
        	doctorsOrders.setLabWork(labWork);
        }
        /**
         * This getter gets the FollowUpInstructions by accessing the DoctorsOrders's getFollowUpInstructions method. 
         * Returns for use by all other classes.
         * @return Returns the followUpInstructions accessed by DoctorsOrders getFollowUpInstructions and returns as a string 
         * for use by all other classes
         */
        public String getFollowUpInstructions(){
        	return doctorsOrders.getfollowUpInstructions();
        }
        /**
         * This method sets the followUpInstructions by accessing the doctorsOrders setFollowUpInstructions
         * @param instructions Takes in a String parameter and sets the instructions by the doctorsOrders setFollowUpInstructions 
         */
        public void setFollowUpInstructions(String instructions){
        	doctorsOrders.setFollowUpInstructions(instructions);
        }
        /**
         * This getter gets the otherInstrucitons by accessing the DoctorsOrderss getOtherInstructions method. Returns for use by 
         * all other classes.
         * @return Returns the prescription accessed by DoctorsOrders getOtherInstructions and returns as a string for use by all other classes
         */
        public String getOtherInstructions(){
        	return doctorsOrders.getOtherInstructions();
        }
        /**
         * This method sets the otherInstructions via the DoctorsOrders setOtherInstructions method
         * @param otherInstructions Takes in a string to set the otherInstructions via the DoctorsOrders setOtherInstuctions method
         */
        public void setOtherInstructions(String otherInstructions){
        	doctorsOrders.setOtherInstructions(otherInstructions);
        }
        
}